/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * UNIVERSIDAD DEL VALLE DE GUATEMALA
 * ALGORITMOS Y ESTRUCTURAS DE DATOS - SECCION 20
 * RADIO DE CARRO (ES LA INTERFAZ DE LA HOJA DE TRABAJO)
 * @author Javier Ivan Castillo Rivera, 11010
 * @author Jose Guillermo Gonzalez Mclaughlin, 11289
 * @author Derek Warren Orbaugh Antillon, 09180
 */
public interface Radio 
{
    static final int AM_MIN = 530;
    static final int AM_MAX = 1610;
    static final int AM_D   = 10;

    static final float FM_MIN = 87.9f;
    static final float FM_MAX = 107.9f;
    static final float FM_D   = 0.2f;


    /**
        * Enciende o apaga el Radio
        */
    public abstract void onOff();

    /**
        * Cambia la banda entre am/fm
        */
    public abstract void cambiarBanda();

    /**
        * Aumenta la frecuencia en el delta correspondiente a la banda
        * Cuando llega al mÃ¡ximo deberÃ­a regresar a la fercuencia mÃ­nima para la banda
        */
    public abstract void cambiarFrecuencia();

    /**
        * Guarda la frecuencia seleccionada en el boton pasado como argumento
        * @param boton
        */
    public abstract void guardarEstacion(int boton);

    /**
        * Cambia la frecuencia seleccionada a la frecuencia guardada
        * en el boton pasado como argumento
        * @param boton 
        */
    public abstract void seleccionarEstacion(int boton);

    /**
        * 
        * @return Frecuencia seleccionada actualmente
        */
    public float getFrecuencia();

    /**
        * 
        * @return True si el radio estÃ¡ encendido, false de lo contrario.
        */
    public boolean isOn();

    /**
        * 
        * @return True si la banda seleccionada es AM, False de lo contrario
        */
    public boolean isAM();

    /**
        * 
        * @return True si la banda seleccionada es FM, False de lo contrario
        */
    public boolean isFM();
}

